package com.credit.core.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

import com.alibaba.fastjson.JSON;
import com.credit.core.constant.Global;
import com.credit.core.enumtype.ReturnCodeEnum;

/**    
 *     
 * 项目名称：core    
 * 类名称：BaseController    
 * 类描述：    controller基类
 * 创建人：huan    
 * 创建时间：2016年3月16日 下午2:02:01    
 * 修改人：huan    
 * 修改时间：2016年3月16日 下午2:02:01    
 * 修改备注：    
 * @version     
 *     
 */
public  class BaseController {
	
	protected String sucess(){
		Map<String , Object> map = new HashMap<>();
		map.putAll(ReturnCodeEnum.C200_.toSimpleMap());
		return JSON.toJSONString(map);
	}
	
	protected String sucess(String message){
		Map<String , Object> map = new HashMap<>();
		map.putAll(ReturnCodeEnum.C200_.toSimpleMap());
		map.put("message", message);
		return JSON.toJSONString(map);
	}
	
	protected String returnBack(ReturnCodeEnum eunm){
		Map<String , Object> map = new HashMap<>();
		map.putAll(eunm.toSimpleMap());
		return JSON.toJSONString(map);
	}
	
	protected String returnBack(ReturnCodeEnum eunm , Map<String , Object> data){
		Map<String , Object> map = new HashMap<>();
		map.putAll(eunm.toSimpleMap());
		map.putAll(data);
		return JSON.toJSONString(map);
	}
	
	/**
	 * 获取当前登录用户信息
	 * @param request
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public Map getUser(HttpServletRequest request) {
		return (Map) request.getSession().getAttribute(Global.User.LOGIN_USER_SESSION_KEY);
	}
	
	/**
     * 取当前服务器路径
     * @param request
     * @return
     */
    public String getRootPath(HttpServletRequest request) {
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath() + "/";
        return basePath;
    }
    
    /**
     * 获取参数
     * @param req
     * @return
     */
    public Map<String, String> getParaMap(HttpServletRequest req) {
    	Map<String, String[]> map = req.getParameterMap();
		Map<String, String> newmap = new HashMap<String,String>();
		for(Map.Entry<String, String[]> entry:map.entrySet()) {
			newmap.put(entry.getKey(), StringUtils.join(entry.getValue(), ","));
		}
		return newmap;
    }
    
}